#!/bin/bash
# linux-resource-monitor DEB包自动打包脚本
# 使用方法：在项目根目录下运行此脚本
set -e

PROJECT_ROOT=$(cd "$(dirname "$0")" && pwd)
DEB_DIR="$PROJECT_ROOT/app.linux-resource-monitor/debian"
PKG_NAME="linux-resource-monitor"
VERSION_FILE="$PROJECT_ROOT/version.txt"
ARCH="all"

# 检查并创建版本文件（如果不存在）
if [ ! -f "$VERSION_FILE" ]; then
    echo "1.0.0" > "$VERSION_FILE"
fi

# 读取当前版本
CURRENT_VERSION=$(cat "$VERSION_FILE")

# 解析版本号
VERSION_PARTS=(${CURRENT_VERSION//./ })
MAJOR=${VERSION_PARTS[0]}
MINOR=${VERSION_PARTS[1]}
PATCH=${VERSION_PARTS[2]}

# 增加补丁版本号
PATCH=$((PATCH + 1))

# 构建新版本号
NEW_VERSION="$MAJOR.$MINOR.$PATCH"

# 保存新版本号到文件
echo "$NEW_VERSION" > "$VERSION_FILE"

# 设置deb包输出路径
OUTPUT_DEB="$PROJECT_ROOT/${PKG_NAME}_${NEW_VERSION}_${ARCH}.deb"

# 检查必要目录
if [ ! -d "$DEB_DIR/DEBIAN" ]; then
  echo "缺少DEBIAN目录，请检查项目结构。"
  exit 1
fi

# 更新control文件中的版本号
sed -i "s/^Version:.*/Version: $NEW_VERSION/" "$DEB_DIR/DEBIAN/control"

# 更新main.py中的版本号
MAIN_PY="$DEB_DIR/usr/share/linux-resource-monitor/main.py"
if [ -f "$MAIN_PY" ]; then
    sed -i "s/^version=\".*\"/version=\"$NEW_VERSION\"/" "$MAIN_PY"
fi

# 构建deb包
dpkg-deb --build "$DEB_DIR" "$OUTPUT_DEB"

if [ $? -eq 0 ]; then
  echo "DEB包已生成：$OUTPUT_DEB"
  echo "版本已更新为：$NEW_VERSION"
else
  echo "打包失败，请检查错误信息。"
  # 恢复版本号
  echo "$CURRENT_VERSION" > "$VERSION_FILE"
  exit 1
fi